package cz.vse.adventura.po1715.xshet00_shevtsova.hra;


/*******************************************************************************
 * Instance třídy {@code Texty} představují Knihovní třída {@code Texty}
 * slouží jako schránka na textové konstanty,
 * které se používají na různých místech program.
 * Centralizací definic těchto textových řetězců lze nejsnadněji dosáhnout toho,
 * že texty, které mají být shodné na různých místech programu,
 * budou doopravdy shodné.
 *
 * @author    Tatyana Shevtsova
 * @version   
 */
public class Texty
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================

    /** Jméno autora programu. */
    public static final String AUTOR = "SHEVTSOVA Tatyana";

    /** X-name autora programu. */
    private static final String XNAME = "XSHET00";

    /** Názvy používaných prostorů - místností. */
    public static final String
            PŘEDSÍŇ = "Předsíň",
            LOŽNICE = "Ložnice",
            OBÝVÁK  = "Obývák",
            KOUPELNA= "Koupelna",
            KUCHYŇ  = "Kuchyň";


    /** Názvy používaých objektů. */
    public static final String
            BOTNÍK  = "Botník",
            DEŠTNÍK = "Deštník",
            BRÝLE   = "Brýle",
            TELEVIZE= "Televize",
            ČASOPIS = "Časopis",
            LEDNIČKA= "Lednička",
            PAPÍR   = "Papír",      
            POSTEL  = "Postel",
            ZRCADLO = "Zrcadlo",
            MAGIE = "Magie",
            ŽUPAN   = "Župan";


    /** Názvy používaých příkazů. */
    public static final String
            pHELP    = "?",
            pJDI     = "Jdi",
            pNASAĎ   = "Nasaď",
            pSUNDEJ  = "Sundej",
            pOTEVŘI  = "Otevři",
            pPODLOŽ  = "Podlož",
            pPOLOŽ   = "Polož",
            pABRAKADABRA = "Abrakadabra",
            pPŘEČTI  = "Přečti",
            pVEZMI   = "Vezmi",
            pZAVŘI   = "Zavři",
            pKONEC   = "Konec";



    
    public static final String 
            SOUSEDÉ  = "Sousedé:  ",
            PŘEDMĚTY = "Předměty: ",
            BATOH    = "Batoh:    ",
            FORMÁT_INFORMACE = "\n\nNacházíte se v místnosti: %s" +
                               "\n" + SOUSEDÉ  + "[%s]" +
                               "\n" + PŘEDMĚTY + "[%s]" +
                               "\n" + BATOH    + "[%s]";

    
    /** Texty zpráv vypisovaných v reakci na povinné příkazy.
     *  Pořáteční z (zpráva) slouží k odlišení od stavů. */
    public  static final String
    zANP            = "", //"\nZadaná akce nebyla provedena";
    zPORADÍM        = "\nChcete-li poradit, zadejte příkaz ?",
    zPRÁZDNÝ_PŘÍKAZ = "\nZadal(a) jste prázdný příkaz." + zPORADÍM,
    zNEZNÁMÝ_PŘÍKAZ = "\nTento příkaz neznám. " + zPORADÍM,

    zPŘESUN         = "\nPřesunul(a) jste se do místnosti: ",
    zCIL_NEZADAN    = zANP + "\nNebyla zadána místnost, do níž se má přejít.",
    zNENÍ_CIL       = zANP + "\nDo zadané místnosti se odsud nedá přejít.",

    zZVEDNUTO       = "\nVzal(a) jste předmět:",
    zPOLOŽENO       = "\nPoložil(a) jste předmět: ",
    zPŘEDMĚT_NEZADAN= zANP + "\nNebyla zadán předmět, s nímž mám manipulovat.",
    zTĚŽKÝ_PŘEDMĚT  = zANP + "\nZadaný předmět nejde zvednout: ",
    zNENÍ_PŘEDMĚT   = zANP + "\nZadaný předmět v místnosti není: ",
    zNENÍ_V_BATOHU  = zANP + "\nPředmět není v batohu: ",
    zBATOH_PLNÝ     = zANP + 
                      "\nZadaný předmět nemůžete vzít, máte už obě ruce plné.",

    zNÁPOVĚDA       = "\nPříkazy, které je možno v průběhu hry zadat:" +
                      "\n============================================",

    zUVÍTÁNÍ        =
        "\nVítáme vás v bytě. Na ulici prší." +
        "\nNajděte v bytě deštník.",
            
    zCELÉ_UVÍTÁNÍ   = zUVÍTÁNÍ +
                      String.format(FORMÁT_INFORMACE,
                                    PŘEDSÍŇ, cm( OBÝVÁK, KUCHYŇ),
                      cm(BOTNÍK), cm()),

    zKONEC         = "Konec hry. \nDěkujeme, že jste zkusil(a) naši hru.";


    /** Texty zpráv vypisované v reakci na nepovinné příkazy. */
    public static final String
   
    CHCE_PŘEČÍST_VZKAZ =
        "\nRozhodl(a) jste se přečíst vzkaz na papíře.",

    NEMÁ_BRÝLE =
        "\nJe ale psán příliš malým písmem, které je rozmazané. Potřebujete brýle",

    NASADIL_BRÝLE =
        "\nNasadil(a) jste si brýle.",

    SUNDAL_BRÝLE =
             "\nSundal(a) jste si brýle.",

    NAPSÁNO =
        "\nNa papíru je napsáno:" +
        "\nTo co  potřebujete leží pod postele" +
        "\nBudete-li mít problémy, něčím ji podložte.",

    CHCE_PODLOŽIT =
        "\nRozhodl(a) jste se podložit předmět ",

    PŘEDMĚTEM =
        " předmětem ",

    NELZE_NADZVEDNOUT =
        "\nBohužel máte obě ruce plné a nemáte ji čím nadzvednout." ,

   
     POSTEL_PODLOŽENA =
        "\nPostel je úspěšně podložena - nyní byste mohly deštník vyzvednout.",

 

    OTEVŘEL_ČASOPIS =
        "Časopis se otevřel, tam leží nějaký popsaný papír.",

        NELZE_JIT =
         "\nNemáte je v sousedech",
   
    ZAVŘEL_ČASOPIS =
        "Úspěšně jste zavřel(a) ČASOPIS.";



//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

    /***************************************************************************
     * Vrátí řetězec obsahující zadané názvy oddělené čárkami.
     *
     * @param názvy Názvy, které je třeba sloučit
     * @return Výsledný řetězec ze sloučených zadaných názvů
     */
    public static String cm(String... názvy)
    {
        if (názvy.length == 0) {
            return "";
        }
        StringBuilder sb = new StringBuilder(názvy[0]);
        for (int i=1;   i < názvy.length;   i++) {
            sb.append(", ").append(názvy[i]);
        }
        return sb.toString();
    }



//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /** Soukromý konstruktor zabraňující vytvoření instance.*/
    private Texty() {}



//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================

}
